/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gob.pnp.despachadores;
import java.sql.*;
import java.util.*;
import pe.gob.pnp.actions.Parentesco;
import pe.gob.pnp.factories.*;
import oracle.jdbc.*;
/**
 *
 * @author Jesus
 */
public class ParentescoDespachador {

    public static List<Parentesco> obtenerParentesco()throws SQLException
    {
        List<Parentesco> lstParentesco = new ArrayList<Parentesco>();
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_OBTENER_PARENTESCO(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.registerOutParameter(1, OracleTypes.CURSOR);
            cs.execute();
            ResultSet rs = (ResultSet) cs.getObject(1);
            while (rs.next())
            {
                Parentesco parentesco = new Parentesco();
                parentesco.setNpareIdentificador(rs.getInt("NPARE_IDENTIFICADOR"));
                parentesco.setCpareDescripcion(rs.getString("CPARE_DESCRIPCION"));
                lstParentesco.add(parentesco);
            }
        }finally{
          ConnectionPool.liberarConexion(conn);
        }
        return lstParentesco;
    }

     public static void agregarParentesco(Parentesco parentesco) throws SQLException {
        Connection conn = null;
        try {
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_AGREGAR_PARENTESCO(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.setString(1, parentesco.getCpareDescripcion());
            cs.execute();
        } finally {
            ConnectionPool.liberarConexion(conn);
        }
    }

    public static void modificarParentesco(Parentesco parentesco)throws SQLException
    {
        Connection conn = null;
        try{
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_MODIFICAR_PARENTESCO(?,?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.setString(1, parentesco.getCpareDescripcion());
            cs.setInt(2, parentesco.getNpareIdentificador());
            cs.execute();
        }finally {
            ConnectionPool.liberarConexion(conn);
        }
    }

    public static void eliminarParentesco(int npareIdentificador)throws SQLException
    {
        Connection conn = null;
        try{
            conn = ConnectionPool.obtenerConexion();
            String sql = "{call SP_ELIMINAR_PARENTESCO(?)}";
            CallableStatement cs = conn.prepareCall(sql);
            cs.setInt(1, npareIdentificador);
            cs.execute();
        }finally{
            ConnectionPool.liberarConexion(conn);
        }
    }


}
